import Vue from 'vue'
import Vuex from 'vuex'


Vue.use(Vuex)

import { plotDetail } from '@/api/plot'; // 引入小区详情接口

export default {
    // 确保plot 模块的所有 getters、actions、mutations 都有独立路径。避免与其他模块产生命名冲突
    namespaced: true,
    state: {
        // 当前选中的小区详情
        // currentPlot: JSON.parse(localStorage.getItem('currentPlot') || 'null')
        currentPlot:{plotId:1}//初始化默认小区id为1
    },
    getters: {
        // 获取当前小区名称
        getCurrentPlotName(state) {
            return state.currentPlot?.plotName || '未选择小区'
        },

        // 获取当前小区id
        currentPlotId(state) {
            return state.currentPlot?.plotId || null
        }
    },
    mutations: {
        // 更新当前选中的小区详情
        setCurrentPlot(state, plot) {
            state.currentPlot = plot
            localStorage.setItem('currentPlot', JSON.stringify(plot));
        },

        // 清除选中状态
        clearCurrentPlot(state) {
            state.currentPlot = null;
            // localStorage.removeItem('currentPlot');
        }
    },
    actions: {
        // 调用接口获取小区详情，并更新到Vuex
        async getPlotDetail({ commit }, plotId) {
            try {
                // 调用小区详情接口，传递小区id参数
                const res = await plotDetail(plotId)
                // 提交mutation更新状态
                commit('setCurrentPlot', res.data)
                return res.data;
            } catch (err) {
                console.error("获取小区详情失败：", err);
                throw err;
            }
        },


        // 清空当前小区信息
        clearCurrentPlotInfo({ commit }) {
            commit("clearCurrentPlot")
        },
    },

    modules: {
        // 子模块
    }
}